package org.ehe.business.project.service;

import com.baomidou.mybatisplus.extension.service.IService;
import org.ehe.business.project.domain.ProjectSolution;
import org.ehe.business.project.domain.bo.ProjectSolutionBo;
import org.ehe.business.project.domain.vo.ProjectSolutionVO;
import org.ehe.common.mybatis.core.page.PageQuery;
import org.ehe.common.mybatis.core.page.TableDataInfo;

/**
 * 产品方案Service
 * @author :zhangnn
 * @className :ProjectSolutionService
 * @description: TODO
 * @date 2025-07-25 11:50:23
 */
public interface ProjectSolutionService extends IService<ProjectSolution> {
    /**
     * 方案分页
     * @param bo
     * @param pageQuery
     * @return
     */
    TableDataInfo<ProjectSolutionVO> pageSolutions(ProjectSolutionBo bo, PageQuery pageQuery);

    /**
     * 新增项目方案
     * @param request
     * @return
     */
    int createProjectSoution(ProjectSolution request);

    /**
     * 修改项目方案
     * @param request
     * @return
     */
    int updateProjectSolution(ProjectSolution request);

    ProjectSolutionVO viewProjectSolution(Long id);

    /**
     * 作废方案
     * @param id
     * @return
     */
    int invalidateProjectSolution(Long id);

    /**
     * 删除项目方案
     * @param id
     * @return
     */
    boolean deleteProjectSolution(Long id);

    /**
     * 审核-拒绝
     * @param
     */
    ProjectSolution rejectSolution(Long solutionId, String auditUser);

    /**
     * 重新提交
     * @param solutionId
     */
    ProjectSolution resubmitSolution(Long solutionId,Integer days);

    /**
     * 审核通过
     * @param solutionId
     * @param auditUser
     */
    ProjectSolution approveSolution(Long solutionId, String auditUser);

    ProjectSolution submitDays(Long solutionId, Integer days);
}
